#include<iostream>
using namespace std;
typedef long long LL;
const int N = 1e5 + 10;
int f1[N], f2[N];
LL a[N];
int n, p;
int main()
{
	cin >> n >> p;
	for (int i = 1; i <= n; i++) {
		int x;
		cin >> x;
		a[i] = a[i - 1] + x;
	}
	LL ans = 0;
	for (int i = 1; i <= n; i++) {
		ans = max(ans, (a[i] % p) + (a[n] - a[i]) % p);
	}
	cout << ans << endl;
	return 0;
}
//int main()
//{
//	cin >> n >> p;
//	int sum1 = 0;
//	for (int i = 1; i <= n; i++) {
//		cin >> a[i];
//		a[i] %= p;
//	}
//	for (int i = 1; i <= n; i++) {
//		f1[i] = f1[i - 1];
//		f1[i] += a[i];
//		f1[i] %= p;
//	}
//	for (int i = n; i >= 1; i--) {
//		f2[i] = f2[i + 1];
//		f2[i] += a[i];
//		f2[i] %= p;
//	}
//	int ans = 0;
//	for (int i = 1; i <= n; i++) {
//		int x = f1[i] + f2[i + 1];
//		cout << "f1[i]==" << f1[i] << endl;
//		cout << "f2[i]==" << f2[i + 1] << endl;
//		//x %= p;
//		ans = max(ans, x);
//	}
//	cout << ans << endl;
//	return 0;
//}